﻿CREATE OR REPLACE FUNCTION carregaRelacionamentos() RETURNS void AS $$   
DECLARE   
     registrosDocumento record;
     varTipoRel integer;  
BEGIN   

--Apaga registros da tabela de relacionamentos
delete from relacionamento;

     --seleciona as pessoas que fazem parte dos documentos
     FOR registrosDocumento IN    
          select idDocumento, idPessoa
	    from autores
	group by idDocumento, idpessoa
	order by idDocumento
     LOOP   

     	 --Seleciona o tipo do relacionamento
	 select idTipoRel into varTipoRel
	   from tipoRelacionamento
	  where tipo = 'Autoria'
	    and Status = 'S';

	--Seleciona todos os autores que estao se relacionando com o autor atual nesse documento
	insert into relacionamento
	select registrosDocumento.idPessoa, idPessoa, varTipoRel, registrosDocumento.idDocumento
	  from autores
	 where idDocumento = registrosDocumento.idDocumento
	   and idPessoa <> registrosDocumento.idPessoa;
   
     END LOOP;   
     RETURN;   
END;   
$$ LANGUAGE plpgsql;